<script>
import {getDeviceType, judgeBrand} from '@/common/dadian.js'
import {APP_ID, DADIAN_URL} from '@/env.js'

export default {
  //初始启动
  onLaunch: function (option) {
  },
  globalData: {
    statusBarHeight: '',
    // current_url:'https://newplatform.renkangshangcheng.cn/',
  },
  onShow: function () {
    //更新小程序
    this.updataapp()
    var _this = this;
    uni.getSystemInfo({
      success: (result) => {
        _this.setshebie(result)
        // 获取手机系统的状态栏高度（不同手机的状态栏高度不同）  （ 不要使用uni-app官方文档的var(--status-bar-height) 官方这个是固定的20px  不对的 ）
        // console.log('当前手机的状态栏高度',result.statusBarHeight)
        let statusBarHeight = result.statusBarHeight + 'px'
        // 获取右侧胶囊的信息 单位px
        const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
        //bottom: 胶囊底部距离屏幕顶部的距离
        //height: 胶囊高度
        //left:   胶囊左侧距离屏幕左侧的距离
        //right:  胶囊右侧距离屏幕左侧的距离
        //top:    胶囊顶部距离屏幕顶部的距离
        //width:  胶囊宽度
        // console.log(menuButtonInfo.width, menuButtonInfo.height, menuButtonInfo.top)
        // console.log('计算胶囊右侧距离屏幕右边距离', result.screenWidth - menuButtonInfo.right)
        let menuWidth = menuButtonInfo.width + 'px'
        let menuHeight = menuButtonInfo.height + 'px'
        let menuBorderRadius = menuButtonInfo.height / 2 + 'px'
        let menuRight = result.screenWidth - menuButtonInfo.right + 'px'
        let menuTop = menuButtonInfo.top + 'px'
        let contentTop = result.statusBarHeight + 44 + 'px'
        let contentTopcount = result.statusBarHeight + 44
        let menuInfo = {
          statusBarHeight: statusBarHeight, //状态栏高度----用来给自定义导航条页面的顶部导航条设计padding-top使用：目的留出系统的状态栏区域
          menuWidth: menuWidth, //右侧的胶囊宽度--用来给自定义导航条页面的左侧胶囊设置使用
          menuHeight: menuHeight, //右侧的胶囊高度--用来给自定义导航条页面的左侧胶囊设置使用
          menuBorderRadius: menuBorderRadius, //一半的圆角--用来给自定义导航条页面的左侧胶囊设置使用
          menuRight: menuRight, //右侧的胶囊距离右侧屏幕距离--用来给自定义导航条页面的左侧胶囊设置使用
          menuTop: menuTop, //右侧的胶囊顶部距离屏幕顶部的距离--用来给自定义导航条页面的左侧胶囊设置使用
          contentTop: contentTop, //内容区距离页面最上方的高度--用来给自定义导航条页面的内容区定位距离使用
          contentTopcount: contentTopcount, //内容区距离页面最上方的高度--用来给自定义导航条页面的内容区定位距离使用
        }
        uni.setStorageSync('menuInfo', menuInfo)
      },
      fail: (error) => {
        console.log(error)
      }
    })
  },
  methods: {
    setshebie(result) {
      var _this = this
      var deviceInfo = {
        appId: APP_ID,
        appVersion: result.appVersion,//manifest 中应用版本名称。
        browserType: result.hostName,//小程序宿主或uniMPSDK的集成宿主名称，WeChat
        browserVersion: result.browserVersion,//uni小程序SDK版本、小程序客户端基础库版本
        deviceBrand: judgeBrand(result.deviceBrand), // 设备品牌
        deviceCode: result.deviceId, // 设备编码
        deviceModel: result.deviceModel, // 设备型号
        deviceType: Number(getDeviceType(result.deviceType)), // 设备类型
        deviceVersion: result.osVersion, // 系统版本
      }
	  var token = uni.getStorageSync('token');
      /* if (uni.getStorageSync('deviceId')) {
        console.log(uni.getStorageSync('deviceId'));
        //监听接口请求
        this.InterceptorRequest();
        //监听页面跳转
        this.InterceptorNavigateTo();
        return
      } */
      // 头部信息
      var header = {
        'content-type': 'application/json',
        'token': token,
      }
      uni.request({
        method: 'post',
        url: DADIAN_URL + "/api/point/device/add",
        data: deviceInfo,
        header: header,
        success: function (res) {
          uni.setStorageSync('deviceId', res.data.data)
          //监听接口请求
          _this.InterceptorRequest();
          //监听页面跳转
          _this.InterceptorNavigateTo();
        }
      })
    },
    // 监听所有请求
    InterceptorRequest() {
      uni.addInterceptor('request', {
        invoke(args) {
          let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
          let curRoute = routes[routes.length - 1].route // 获取当前页面路由，也就是最后一个打开的页面路由
          let deviceId = uni.getStorageSync('deviceId')
          args.header.appId = APP_ID;//appid
          args.header.deviceId = deviceId;//设备ID，setshebie获取
          args.header.appPage = "/" + curRoute;//当前页面url
        },
        success(args) {
          // 请求成功后，修改code值为1

        },
        fail(err) {
          console.log(err, '全局监听')
        },
        complete(res) {

        }
      })
    },
    InterceptorNavigateTo() {
      uni.addInterceptor('navigateTo', {
        invoke(args) {
          // request 触发前拼接 url
          // console.log(args,'前跳转')
        },
        success(args) {
          // 请求成功后，修改code值为1
          // console.log(args,'后跳转')
        },
        fail(err) {
          // console.log('interceptor-fail',err)
        },
        complete(res) {
          // console.log('interceptor-complete',res)
        }
      })
    },
    updataapp() {
      console.log('触发更新提示')
      const updateManager = wx.getUpdateManager()

      updateManager.onCheckForUpdate(function (res) {
        // 请求完新版本信息的回调

      })

      updateManager.onUpdateReady(function () {
        wx.showModal({
          title: '更新提示',
          content: '新版本已经准备好，是否重启应用？',
          success(res) {
            if (res.confirm) {
              // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
              updateManager.applyUpdate()
            }
          }
        })
      })

      updateManager.onUpdateFailed(function () {
        // 新版本下载失败
      })
    },
  },
  onHide: function () {
  }
}
</script>

<style>
//image {
//  width: 100%;
//  height: 100%;
//}

@import "@/common/css/common.css";
/*每个页面公共css */
@import "static/css/common.css";

.videoEnd {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 150upx;
  height: 150upx;
  transform: translate(-50%, -50%);
  z-index: 4;
}

.message-box .image-list .video-play {
  background-color: rgba(0, 0, 0, 0.2) !important;
}

::-webkit-scrollbar {  
    display: none;  
    width: 0 !important;  
    height: 0 !important;  
    -webkit-appearance: none;  
    background: transparent;  
}

</style>
